Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(indy-sdk)!: remove indy-sdk package #1629

Merged

Conversation

TimoGlastra
Copy link
Contributor

Still WIP.

Removes the indy-sdk package and updates all code to now use only the new shared components. Still some work to do related to removing the usage of indy-sdk and making sure all tests work. But this is an initial step.

@codecov-commenter
Copy link

Codecov Report

Merging #1629 (3d674ba) into main (0865ea5) will increase coverage by 1.55%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main    #1629      +/-   ##
==========================================
+ Coverage   62.44%   63.99%   +1.55%     
==========================================
  Files         775      732      -43     
  Lines       17906    16221    -1685     
  Branches     3081     2793     -288     
==========================================
- Hits        11181    10381     -800     
+ Misses       6185     5359     -826     
+ Partials      540      481      -59     
Files Coverage Δ
packages/core/src/agent/Agent.ts 75.42% <ø> (ø)
packages/core/tests/helpers.ts 70.62% <100.00%> (+3.24%) ⬆️
packages/core/tests/index.ts 100.00% <ø> (ø)
packages/core/tests/jsonld.ts 25.71% <100.00%> (-2.07%) ⬇️
...indy-vdr/src/anoncreds/IndyVdrAnonCredsRegistry.ts 86.70% <100.00%> (ø)
...ckages/indy-vdr/src/anoncreds/utils/identifiers.ts 83.33% <ø> (ø)

... and 85 files with indirect coverage changes

Copy link
Contributor

@berendsliedrecht berendsliedrecht left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome! This should resolve quite a lot of setup issues and hopefully more stable tests.

I was wondering whether we should just keep it as-is and unmaintained (or in like an aries-framework-javascript-archived repository), but I do think that just removing is the way to go.

package.json Outdated Show resolved Hide resolved
packages/anoncreds-rs/package.json Outdated Show resolved Hide resolved

return modules
}
export type AnonCredsTestsAgent = Agent<
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should loosen the any type restrictions within the tests folders.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah that might be a good one 👍

packages/core/tests/connections.test.ts Outdated Show resolved Hide resolved
packages/indy-sdk-to-askar-migration/tests/migrate.test.ts Outdated Show resolved Hide resolved
samples/extension-module/package.json Outdated Show resolved Hide resolved
.github/workflows/continuous-integration.yml Outdated Show resolved Hide resolved
Dockerfile Outdated Show resolved Hide resolved
Signed-off-by: Timo Glastra <timo@animo.id>
Signed-off-by: Timo Glastra <timo@animo.id>
Signed-off-by: Timo Glastra <timo@animo.id>
@TimoGlastra
Copy link
Contributor Author

Getting the tests to work is more work than expected, and I'm getting some weird Askar errors for some tests.

Have pushed my latests changes, will try to continue working on it once I have time (but feel free to pick it up if anyone has the time and energy to do it)

@TimoGlastra
Copy link
Contributor Author

@genaris I've made a lot of updates, but I'm getting some weird errors related to Askar in various places. I've tried to fix quite a few, but there's some I've been stuck on for a few hours now.

Would you be able to take a quick look and see if you know what the issue is? Otherwise I'll keep digging, but maybe I'm missing some obious askar thingies

@genaris
Copy link
Contributor

genaris commented Dec 13, 2023

@genaris I've made a lot of updates, but I'm getting some weird errors related to Askar in various places. I've tried to fix quite a few, but there's some I've been stuck on for a few hours now.

Would you be able to take a quick look and see if you know what the issue is? Otherwise I'll keep digging, but maybe I'm missing some obious askar thingies

Sure, I'll take a look at it. I think it's related to the changes in packages/askar/src/utils/askarWalletConfig.ts. My original code is a bit (too) messy, I'll try to fix it so it's more clear and it works properly with che changes you've done!

Signed-off-by: Ariel Gentile <gentilester@gmail.com>
Signed-off-by: Ariel Gentile <gentilester@gmail.com>
@genaris
Copy link
Contributor

genaris commented Dec 14, 2023

@TimoGlastra as promised, I checked all failed tests (at least those who fail consistently) and I commited some fixes that should solve most problems with Askar. There are some others that I've quickly analysed and would like to discuss here:

packages/core/src/modules/proofs/protocol/v2/tests/v2-indy-proofs.e2e.test.ts: there are some inconsistencies between IndySdkHolder/Issuer and AnonCredsRsHolder/Issuer that make this test to fail:

  • In Indy, when credentialRevocationId is not defined, it is set to null, while for AnonCredsRs it is set to undefined. I think null is a more appropriate value, since we certainly know it is not defined. In any case I think it should be consistent with revocationRegistryId, which is currently set to null
  • The test Alice starts with proof proposal to Faber proposes a proof with an attribute (name) and a predicate (age >= 50) and expects resulting formatData.presentation.indy.proof.proofs array to have a single element. However, anoncreds-rs is generating two separate proofs. Up to now we didn't have found issues when interacting with indy-sdk-based verifiers, so I guess this is correct but I just want to check with you guys that have more experience in indy

packages/core/src/modules/routing/tests/mediation.test.ts: here we have a frequent problem with the test named restart recipient agent and create connection through mediator after recipient agent is restarted, where we restart recipientAgent just before we initialize senderAgent. There is nothing wrong with that, but it seems that Askar wrapper is mixing up error codes of the two agents: while the first one is initiating message pick up process successfully (i.e. multiple calls to Askar with errorCode = 0), the other one fails when opening the wallet (our beautiful, indy-inherited strategy of attempting to open a wallet and create if it does not exist).

To be more specific in Aries Askar NodeJS wrapper code, storeOpen responds with an errorCode = 6 (NotFound) and [promisifyWithResponse attempts to get more info about the error by calling askar_get_current_error (see here)... but in-between there was a successful call to the library (like reading a record or anything else from recipientAgent's initialization process), so the wrapper will throw an AriesAskarError whose error code is 0 and its description is null. And that's what we see in the test log.

We can easily 'fix' the test by initiating senderAgent before all this concurrency issue happens, although this issue happens from time to time with other tests. Not sure if we should fix this now but would like to know @berendsliedrecht opinion about this concurrency theory and if we can do something (either in AFJ or the wrapper) to solve it quickly. For instance, checking that the error code from get_current_error matches the one returned by the original function call.

@TimoGlastra
Copy link
Contributor Author

Thanks a lot for looking into this @genaris. The error handling is something I've discussed with Berend before, but we didn't get to a solution back then. I'll discuss with him again, it seems like an interesting issue.

@TimoGlastra
Copy link
Contributor Author

For instance, checking that the error code from get_current_error matches the one returned by the original function call.

This might be a good first step, as then at least the error code is okay. We might miss the error message in this case, but it's better than having concurrency issues.

@TimoGlastra
Copy link
Contributor Author

@andrewwhitehead, did you ever run into this issue in ACA-Py when using Askar? I think because we're using callbacks and promises it's a bit tricky to use the sync get error, without tracking all method calls that are simultaneously going on.

Could we instead of the error code also return some sort of identifier that would allow us to retrieve the error code for x seconds? Or simpler, the get current error checks whether the identifier matches the identifier of the current error, and if it has already been overwritten we won't return anything (or a specific error message: "Already overwritten").

@andrewwhitehead
Copy link

Looking at the wrapper code, it seems to be calling askar_get_current_error unnecessarily in a few places which would increase the risk of missing an error or raising it inappropriately. The method is only expected to be called after another method has returned a non-zero error code, and it removes the last error when it is called. A successful method call does not change the stored error.

This behaviour probably ought to be changed to return an index into a BTreeMap (for instance), with either auto-expiring errors or errors that are cleared after being retrieved. This would remove the chance of another thread capturing the error.

@TimoGlastra
Copy link
Contributor Author

Thanks for the quick reply.

This behaviour probably ought to be changed to return an index into a BTreeMap (for instance), with either auto-expiring errors or errors that are cleared after being retrieved. This would remove the chance of another thread capturing the error.

This sounds look a good solution to me. I think the expiration could be quite short-lived, as we're always retrieving the error immediately after

@berendsliedrecht
Copy link
Contributor

Looking at the wrapper code, it seems to be calling askar_get_current_error unnecessarily in a few places which would increase the risk of missing an error or raising it inappropriately.

I remember that there was a reason for these additional calls. I think it had something to do with the error not yet being set, but this was over a year ago now. I will see if I can remove these calls.

@berendsliedrecht
Copy link
Contributor

Created a PR at askar for the error issue (openwallet-foundation/askar#209). If we can merge and release this, and it works how it is supposed to, I will apply the same fixes for AnonCreds and indy-vdr. I checked the react native code and it seems to already be correctly implemented.

@TimoGlastra
Copy link
Contributor Author

I've updated this PR with the changes from openwallet-foundation/askar#209, and it seems to have made some improvements, but it still happens sadly.

Now getting errors like "WalletError: Error closing wallet': Error code mismatch. Function received: '2', but after fetch it was '6'".

So we might need fix the error handling before we releaes this PR, or make sure we don't call Askar concurrently under this load.

@TimoGlastra
Copy link
Contributor Author

Funnily enough If I add a console.log in the promisifyWithCallback method it's enough for the issue to not occur and e.g. creating 100 tests concurrently will not fail anymore.

Signed-off-by: Timo Glastra <timo@animo.id>
Signed-off-by: Timo Glastra <timo@animo.id>
Signed-off-by: Timo Glastra <timo@animo.id>
Signed-off-by: Timo Glastra <timo@animo.id>
@TimoGlastra
Copy link
Contributor Author

@andrewwhitehead any idea why the proofs created between AnonCreds RS and Indy SDK are different? It seems with Indy when revealing name and a predicate on age from the same cred it will create one proof, while now with AnonCreds it creates two proofs. I don't know if this has any security implications?

See the below structure for the difference:

Indy SDK
{
	"presentation": {
		"indy": {
			"proof": {
				"proofs": [
					{
						"primary_proof": {
							"eq_proof": {
								"revealed_attrs": {
									"name": "76355713903561865866741292988746191972523015098789458240077478826513114743258"
								},
								"a_prime": "69990785802771130988873403821332780424736016716687280191941460383686707785636392128821163741620205319502633916291172945951359718470693408645384223468140415805768748290999612300411184692156050784476858581776993094614076504883116601359825785227673338643875143463281347588686942741067757041603009255552973887041109474816203277234428863590094028964400167288079765389845657999656248445450037914272256715229953205559949833637360813178525977572261009983384847778990992639630950838155232072692009760356102526457195850384043066398513795291168916580943455051613968012166438520780954973395588363613751230138211868046133982680693",
								"e": "139970031001223820827685956918335365258361498701913268937403284190420481130683044103978190225172181790427845537382265233783189065882661585",
								"v": "945551062417607438146468240190627982719938733772061544888443036476195590958949864482854168598847024917858282223645383996002246779699151319682556551888374844664482513767371385916256541596645304820790407917406628805259825836975543452363881685325918737768460969058785910765235986253701654067402531404267049872321088707579504575312740659950312985065717653338321348580890811120092153322696121817286832393908543182231186985578706722931020096239075391807252116310258403839260706417183116978606922660139586118680368463865027326244823261599754352675430966863614247011571721146707662751538018666085115056006000458739890415907487823401139152272075374740044974297902723733298732576185161499238549172564530084171278560517445378210531116389479806357290225253683845232173453323973206636684317736811045129924612369253461973200254129923715986058567703762138479127273145488764196203425295949876658974272156890154534563261216917627023109823",
								"m": {
									"master_secret": "11912713960614047875650286146536446410334935794774846411715403491251705338762207655773408981123401237359274634877986791353035498077930684464113253437510127144065321722790526323157",
									"age": "9392431168881325707109344324207252900952522763209586100127186177941461926546855427551069423190994657569896056061022161456299816607801360795482647188153085736954496362039106624011",
									"image_0": "5927136900003523744646481932835203572645568479496337756626011763015475460552420736062127833395429187769438015833625363846202144093402965740873902817518466402337571703525224855008",
									"image_1": "1792066265441424220754699664357779726289222500741094698050924087484689551511831956853250459080706995842744001279863079717191050550796112581993481003748104081857387849753063789823"
								},
								"m2": "676120801917629370746289124732858339186888276571941679396903287015661727175723325851982766363292316103083125108670994237056229760706540712156535917409265268038653165062226557361"
							},
							"ge_proofs": [
								{
									"u": {
										"0": "11190408622552819626023578764433037932548890666062620014862128663891289152292071738061694672685570462157665096853453021611544185011966194581612624493020345122196222625562136165930",
										"1": "5650663800983500502237708766145353296227847511690810624001431493768935501358507563708811521486661448044208254141457959986705329635440448842074050922331154814277063506956544374660",
										"2": "11729622141062550548782037392645843680546307742994800926416492341613650326324265471851195511807074636440998342103074168373892137721612187292576691573625046587490169836066674078951",
										"3": "13310106614279007312701908256800459949127036794268670595602725268601152998350900607997860326910986947419500217949488769434778286604647585319324915523074202221035207828040664027630"
									},
									"r": {
										"0": "1738990246201821285300143378656910728119669956851089614681875403879530915003678715710778335461539472750346044049296288906656274870212364480239733952235914854041946787827849340182952252485650631587346285466335833396159842753996644794987943937687816989708002385486758824360286604042920616901634596785839132873622284902217346540100094207415311082566702442701975671211473260094440172962999209959879001426620286433199113441982221951462653084734887637283827666717233512031740639633894631091101437155771555892857539297030262290990276681711633912975641985608649645357083379935061300851271490145803260678991957096691274231277925774582115703387358538204520943299911795694112433161623197961536784058582153376184781102901799991382",
										"1": "3107417739723124273791350640124433100944260636348036064444986846372943878440500769074378842890979418053757945843122071210828045001668530522849154123012031024785713034658102103215361482022294408431201807965267793817499213623760992293411455236924148206345110580156711631750037634028264339825898128115566848518090341815829050066245047182703635296572509156416658948425790897859390754876331186123034969071540715804176591947213115055791692057659736892783098314942891428048856887325189844513387822931446726783959583517740656140416425354233171545673017389421003868046370440783188366696679157951171571449696974186951593568534214863269362716004577455576295301022266454106170671246565950861764902013081470821728937762894019602978",
										"2": "2588708262617025401110727838496605952075904234251410814745785876257694785393490401705521953321819350876442751116113530551709302248356058202862526476626412048718215847914684324294851849422670287057569275723365615547110913934863265070732702634733377885537839601310140330160660351577161482290912964015866212731549803018360910375520909563570972036584825904808313708381561557654510685453335603810053051716954783001016006569124888228308993861641160437500242347365355919515633529997370055417362367264242638592154608885415110008685113567097821959908151426265358622240961744286644479493440074093398648416874402390845084385520509829390049608885891195779608791803697863701323291491220956676713170102481011815118055229655519755684",
										"3": "2965949195910454781882529332150203727688282873036821815914902798212936894457192971007190897876492048562295457456633751403824889561135818758105823814463116045877651393863517461307341850736212747918779211608769992062161846795410836219925080462835084691149064541396469735771417408094057108083795212224638593557524454584593835126064757622597496845461339265690298092743833356647449156243886807664455330464856155130928857960815564484756168065066234349850692228755868921152969190566738726771634475593432499385337041103116234016050790278069059838119052477790183903484355250110176521974425650072858606075891567261371659632514190245410787901343581707457516898306034967260758895025456022822128982939615635023592887087458311795257",
										"DELTA": "2952400626731837301519683517876351820195223085477348045918351102947220534988719183761346582014081715185640559131833578692722588223173712880229340055719282005250489448351904209142780170637747916686461844060472216210965015589343353806390540881136215700665480390853913648507131594853893853004533566924160903082797288604743110049505814178177818289046178581936046943840451394909097685371204845778495109815332949129689125729023939626048968064287598018667997532656544121066507216017698639276241863741823453624097322278187104654675103550272182247946674940991813130612699170493732823699912861480859722492043382426436466873822863092209922870729922981264856335895449768499319270592017539383970725100534454446271883350088546560110"
									},
									"mj": "9392431168881325707109344324207252900952522763209586100127186177941461926546855427551069423190994657569896056061022161456299816607801360795482647188153085736954496362039106624011",
									"alpha": "1704742653689062641669896883926378425070116902768189058595002445494952776929377844209291044911467732558107842722229690538733835413601367752514946261891497633863594543247981466391644692797934245973227956094007897524055562927970731914541698145500257776245910180623713758891633663056202982531529433241156730580075334701838250206513198155302305361346835445826031488018929206404207606459326129653871832634295145106146431228309745147485361999220652018113756928614870723511794669574291833855571778898051507090362535302961103625826135658668962043957351525240663645831328142555045519101560029427177637189155786649052083139467775447726461910692903783122247170756505688280725533682699511408376913120953065532738140602629664281563837388650744145219339482619561910340480172872388208666154129041733813216881458843653829534918073692405852843786253729209",
									"t": {
										"0": "83199544867787744079808931048886875988682622377121268027057484915017145975449477755456624035222312831840467860296048511742894601125006485755540174560879115170979427890209614172111121559117787521041685015274075509329281711833722268804151264640559565326683610675651983706291385050734273609039888644667325895682367224338315243863450054944403452051097026557405579450235706184373213848017504818535746678099623311459651206326087564809235655678990596362873954758779589017650478801691943287057983314498973439909374162910911279033758869019544235527505437709736360206898727132817741486622484763873350645255140100290889226736086",
										"1": "26766470343981455430723143653901415120867357321777551914456493214726664457931482831676569557646469740524299171450011854132443780420926213428030919313964684226098239880796548709662707090944992245954172076104527916808763964194224012267518307894287644439275304723548940200356990116800459684663607626652643365112509719440066523190877590594469020752999487003597891739327858202252593049409531218261911483704946810917856013673931379594780244793117030494616485452772019338205790955422402614817793796729901878721333398267339514889556232355740618622921139118394877879987814786873118327785403790420472612338783336222044362900936",
										"2": "41638972153207373129650332764221801564491242920805454869298401873022692401464041955712036092832064108943542339662363949572017129651114823114266591311257340701844877271638760784912410277489340674778740785010718276839875298132939491644064009195852220478639213038239942287016943664056207837731978425354221848387152894913800006095085824319762436811885454406184154044162880499159745107092634358270216042984075120431435126198022432887537393722195647213319470353958726720846733318044590284316098894332305900243100233414140844955919548510481040824572875238130997846471382028035545031936311376283250711916718603446801995298165",
										"3": "47863274107963502610075867404336037903104496701343494858601124002223958931927294249600987596488575173977168961137256456743990216833392917796913485722573207279008813485376757120979993762652140709557307247164937895559377776090481966663586713245443117380778743294059073042869016590371899097702101105047122077409668550273224264697558908430768829223971796417480718526692620917721694921248200223182024113434446407610459951640785255492412609342439180130464237426938236606944200989932458050218906020307570214142644035233347606631871077914382489065854471862585527207208093019688678680456617186250080935985150296540430956599441",
										"DELTA": "50767151662284027749439161273201843432852846551251868520252885267573161473903334770292701588765970808323342028562529659587925454290778966783987600008983582832041952156421104812431515435800031283302567203063388901745951265208384487084840955108406739018536684526177380612709696141636778304104146177867709396819839524065783504360896634480961505222169320709520251177746887919085275225344068372124469198944099037888208808693800107736199165093549121863674035231653560138848493130185648099348104314238212255898004573311949422671360786953479910831848409955782180449404669115956969772389555263470804178357416706587823082675671"
									},
									"predicate": {
										"attr_name": "age",
										"p_type": "GE",
										"value": 50
									}
								}
							]
						},
						"non_revoc_proof": null
					}
				],
				"aggregated_proof": {
					"c_hash": "95338200735084913599499055419155608196707840781756506869111197197201310736731",
					"c_list": [
						[
							2,
							42,
							111,
							14,
							231,
							203,
							164,
							154,
							61,
							135,
							95,
							7,
							158,
							233,
							155,
							158,
							122,
							217,
							102,
							25,
							138,
							110,
							205,
							69,
							204,
							255,
							225,
							223,
							14,
							26,
							155,
							200,
							39,
							191,
							250,
							42,
							240,
							80,
							166,
							213,
							132,
							145,
							63,
							86,
							21,
							80,
							83,
							24,
							209,
							183,
							157,
							53,
							91,
							25,
							241,
							168,
							59,
							181,
							89,
							255,
							51,
							92,
							88,
							251,
							105,
							77,
							50,
							80,
							78,
							133,
							124,
							115,
							79,
							161,
							252,
							57,
							54,
							68,
							62,
							116,
							225,
							209,
							57,
							237,
							169,
							155,
							14,
							143,
							122,
							175,
							59,
							225,
							166,
							125,
							83,
							202,
							196,
							107,
							219,
							19,
							23,
							180,
							199,
							231,
							130,
							78,
							203,
							191,
							65,
							95,
							78,
							42,
							97,
							252,
							39,
							103,
							15,
							174,
							228,
							39,
							131,
							199,
							200,
							91,
							253,
							64,
							170,
							93,
							156,
							115,
							11,
							22,
							107,
							168,
							85,
							235,
							100,
							188,
							102,
							78,
							253,
							179,
							131,
							43,
							22,
							106,
							112,
							221,
							159,
							205,
							125,
							117,
							239,
							87,
							201,
							3,
							95,
							145,
							55,
							1,
							69,
							230,
							5,
							227,
							145,
							69,
							107,
							55,
							179,
							220,
							231,
							19,
							6,
							30,
							141,
							135,
							96,
							186,
							189,
							196,
							191,
							13,
							69,
							102,
							97,
							117,
							23,
							167,
							0,
							207,
							233,
							209,
							7,
							235,
							101,
							248,
							58,
							91,
							117,
							56,
							148,
							103,
							116,
							115,
							79,
							88,
							251,
							227,
							242,
							11,
							158,
							207,
							11,
							171,
							195,
							91,
							6,
							154,
							1,
							187,
							74,
							188,
							111,
							52,
							158,
							139,
							26,
							143,
							161,
							140,
							19,
							117,
							21,
							35,
							65,
							194,
							41,
							89,
							153,
							136,
							143,
							177,
							54,
							34,
							225,
							76,
							40,
							210,
							186,
							239,
							161,
							235,
							157,
							144,
							92,
							86,
							117
						],
						[
							2,
							147,
							17,
							61,
							183,
							166,
							86,
							113,
							178,
							237,
							35,
							201,
							149,
							159,
							177,
							197,
							219,
							95,
							13,
							163,
							8,
							86,
							180,
							12,
							60,
							174,
							186,
							52,
							173,
							254,
							32,
							142,
							212,
							31,
							169,
							75,
							187,
							123,
							229,
							144,
							23,
							253,
							25,
							146,
							234,
							81,
							22,
							10,
							22,
							253,
							4,
							167,
							216,
							166,
							140,
							247,
							33,
							216,
							108,
							33,
							164,
							66,
							201,
							149,
							90,
							214,
							180,
							169,
							131,
							0,
							69,
							192,
							61,
							176,
							215,
							248,
							250,
							27,
							42,
							42,
							210,
							205,
							60,
							38,
							180,
							240,
							101,
							39,
							135,
							227,
							130,
							202,
							210,
							222,
							122,
							22,
							86,
							206,
							220,
							56,
							18,
							86,
							66,
							147,
							50,
							9,
							184,
							129,
							109,
							27,
							163,
							28,
							142,
							211,
							0,
							248,
							205,
							222,
							226,
							76,
							144,
							16,
							84,
							93,
							41,
							130,
							97,
							20,
							117,
							40,
							21,
							208,
							18,
							165,
							212,
							47,
							244,
							27,
							211,
							46,
							210,
							70,
							238,
							61,
							59,
							54,
							208,
							53,
							147,
							70,
							4,
							161,
							143,
							75,
							202,
							32,
							92,
							213,
							30,
							156,
							185,
							73,
							49,
							167,
							95,
							188,
							230,
							134,
							81,
							236,
							195,
							181,
							56,
							159,
							41,
							163,
							157,
							155,
							40,
							217,
							101,
							206,
							142,
							97,
							56,
							136,
							110,
							234,
							213,
							39,
							120,
							255,
							207,
							226,
							229,
							72,
							116,
							35,
							252,
							47,
							74,
							125,
							34,
							98,
							189,
							130,
							46,
							200,
							160,
							169,
							163,
							166,
							110,
							6,
							180,
							215,
							122,
							57,
							253,
							138,
							35,
							231,
							69,
							140,
							9,
							166,
							31,
							102,
							237,
							43,
							241,
							168,
							208,
							66,
							75,
							34,
							203,
							204,
							151,
							165,
							215,
							6,
							116,
							190,
							101,
							171,
							185,
							23,
							45,
							104,
							49,
							126,
							62,
							171,
							161,
							81,
							214
						],
						[
							212,
							8,
							2,
							118,
							128,
							168,
							179,
							99,
							136,
							133,
							117,
							125,
							90,
							148,
							10,
							16,
							237,
							109,
							143,
							202,
							122,
							132,
							102,
							59,
							173,
							69,
							14,
							13,
							108,
							68,
							55,
							50,
							28,
							75,
							79,
							42,
							82,
							17,
							18,
							37,
							230,
							127,
							42,
							122,
							196,
							26,
							110,
							152,
							173,
							196,
							224,
							239,
							26,
							82,
							184,
							221,
							242,
							247,
							24,
							72,
							94,
							83,
							122,
							240,
							85,
							217,
							35,
							248,
							58,
							145,
							200,
							32,
							68,
							96,
							97,
							73,
							83,
							147,
							140,
							151,
							76,
							177,
							91,
							18,
							214,
							118,
							31,
							92,
							139,
							232,
							188,
							204,
							127,
							175,
							143,
							177,
							205,
							1,
							27,
							83,
							24,
							228,
							30,
							2,
							189,
							8,
							240,
							95,
							188,
							210,
							67,
							59,
							127,
							4,
							211,
							94,
							237,
							144,
							56,
							243,
							107,
							35,
							72,
							79,
							249,
							173,
							222,
							34,
							80,
							228,
							38,
							134,
							152,
							49,
							181,
							123,
							39,
							105,
							202,
							169,
							117,
							93,
							213,
							194,
							138,
							47,
							230,
							139,
							255,
							4,
							125,
							135,
							89,
							246,
							221,
							161,
							152,
							73,
							192,
							12,
							232,
							54,
							232,
							191,
							210,
							238,
							254,
							12,
							177,
							125,
							96,
							168,
							196,
							144,
							89,
							207,
							171,
							4,
							195,
							234,
							68,
							253,
							119,
							207,
							67,
							232,
							202,
							144,
							10,
							6,
							236,
							194,
							218,
							39,
							104,
							89,
							21,
							128,
							129,
							44,
							124,
							90,
							201,
							123,
							0,
							210,
							83,
							251,
							239,
							45,
							30,
							181,
							140,
							65,
							62,
							177,
							55,
							104,
							190,
							228,
							181,
							228,
							44,
							3,
							158,
							231,
							50,
							6,
							104,
							140,
							172,
							255,
							215,
							103,
							79,
							157,
							57,
							99,
							62,
							222,
							101,
							147,
							247,
							165,
							111,
							185,
							83,
							17,
							138,
							30,
							253,
							37,
							142,
							4,
							5,
							200
						],
						[
							1,
							73,
							216,
							29,
							51,
							161,
							144,
							233,
							217,
							106,
							31,
							62,
							70,
							6,
							74,
							170,
							32,
							7,
							100,
							143,
							44,
							63,
							226,
							191,
							239,
							127,
							162,
							228,
							224,
							19,
							242,
							205,
							204,
							104,
							77,
							37,
							244,
							84,
							201,
							83,
							11,
							177,
							144,
							105,
							141,
							34,
							115,
							5,
							214,
							225,
							81,
							206,
							153,
							106,
							155,
							6,
							14,
							223,
							158,
							202,
							186,
							226,
							204,
							214,
							71,
							71,
							26,
							59,
							203,
							1,
							9,
							152,
							222,
							11,
							7,
							58,
							109,
							68,
							99,
							139,
							158,
							114,
							40,
							171,
							127,
							246,
							131,
							188,
							132,
							231,
							56,
							252,
							216,
							44,
							145,
							42,
							252,
							144,
							64,
							212,
							72,
							231,
							232,
							56,
							10,
							193,
							15,
							104,
							245,
							50,
							85,
							231,
							200,
							140,
							68,
							2,
							12,
							127,
							186,
							3,
							68,
							50,
							202,
							17,
							182,
							54,
							197,
							133,
							124,
							126,
							90,
							139,
							61,
							240,
							228,
							221,
							73,
							244,
							2,
							139,
							186,
							70,
							46,
							215,
							27,
							136,
							10,
							100,
							97,
							93,
							146,
							212,
							107,
							86,
							154,
							236,
							240,
							100,
							92,
							188,
							242,
							232,
							13,
							239,
							37,
							161,
							206,
							234,
							54,
							124,
							154,
							167,
							42,
							155,
							167,
							162,
							131,
							21,
							149,
							53,
							206,
							47,
							149,
							65,
							155,
							3,
							75,
							27,
							35,
							246,
							195,
							74,
							220,
							83,
							226,
							151,
							202,
							114,
							238,
							88,
							180,
							113,
							20,
							63,
							179,
							119,
							151,
							57,
							146,
							159,
							38,
							23,
							129,
							208,
							164,
							56,
							41,
							168,
							12,
							236,
							98,
							220,
							51,
							63,
							243,
							115,
							223,
							195,
							52,
							3,
							236,
							6,
							135,
							107,
							30,
							133,
							187,
							141,
							162,
							11,
							27,
							100,
							67,
							158,
							72,
							112,
							72,
							251,
							98,
							170,
							185,
							236,
							20,
							215,
							190,
							117,
							117
						],
						[
							1,
							123,
							38,
							113,
							48,
							24,
							203,
							220,
							46,
							167,
							198,
							69,
							172,
							112,
							10,
							251,
							101,
							254,
							123,
							234,
							19,
							183,
							39,
							173,
							216,
							93,
							124,
							80,
							171,
							32,
							223,
							234,
							161,
							58,
							208,
							63,
							77,
							150,
							171,
							81,
							202,
							179,
							83,
							191,
							55,
							30,
							202,
							151,
							39,
							16,
							32,
							119,
							145,
							82,
							177,
							244,
							11,
							252,
							111,
							47,
							230,
							124,
							251,
							127,
							150,
							72,
							146,
							161,
							237,
							155,
							108,
							161,
							30,
							86,
							17,
							185,
							6,
							9,
							94,
							89,
							14,
							248,
							223,
							244,
							177,
							203,
							4,
							99,
							24,
							85,
							6,
							135,
							16,
							66,
							251,
							30,
							119,
							64,
							161,
							217,
							163,
							107,
							102,
							159,
							210,
							221,
							220,
							240,
							127,
							146,
							138,
							129,
							222,
							13,
							170,
							175,
							79,
							50,
							68,
							153,
							147,
							105,
							103,
							176,
							119,
							77,
							208,
							101,
							249,
							226,
							225,
							84,
							146,
							78,
							22,
							16,
							138,
							53,
							51,
							73,
							210,
							138,
							220,
							146,
							210,
							208,
							90,
							137,
							212,
							149,
							184,
							3,
							139,
							13,
							48,
							205,
							142,
							168,
							151,
							194,
							59,
							63,
							193,
							103,
							6,
							181,
							100,
							141,
							190,
							233,
							7,
							96,
							226,
							234,
							224,
							131,
							226,
							248,
							197,
							183,
							15,
							20,
							217,
							243,
							151,
							161,
							0,
							235,
							6,
							110,
							222,
							167,
							144,
							14,
							238,
							26,
							123,
							189,
							228,
							105,
							121,
							191,
							190,
							65,
							109,
							101,
							47,
							141,
							171,
							248,
							199,
							41,
							14,
							116,
							136,
							183,
							101,
							135,
							239,
							2,
							227,
							219,
							9,
							82,
							110,
							244,
							74,
							108,
							48,
							50,
							181,
							10,
							219,
							227,
							255,
							196,
							92,
							57,
							149,
							218,
							80,
							135,
							97,
							255,
							70,
							209,
							208,
							102,
							108,
							189,
							79,
							10,
							19,
							25,
							237,
							152,
							145
						],
						[
							1,
							146,
							39,
							63,
							12,
							187,
							141,
							157,
							32,
							253,
							104,
							21,
							62,
							91,
							211,
							203,
							24,
							124,
							205,
							198,
							170,
							125,
							206,
							73,
							151,
							109,
							96,
							103,
							198,
							155,
							112,
							188,
							156,
							140,
							152,
							200,
							171,
							60,
							13,
							75,
							91,
							10,
							32,
							120,
							85,
							189,
							14,
							228,
							253,
							240,
							49,
							121,
							155,
							54,
							200,
							226,
							21,
							36,
							58,
							67,
							255,
							107,
							176,
							167,
							188,
							2,
							148,
							0,
							79,
							96,
							218,
							147,
							74,
							188,
							249,
							197,
							152,
							154,
							183,
							154,
							78,
							138,
							53,
							18,
							169,
							60,
							100,
							235,
							96,
							86,
							190,
							67,
							123,
							105,
							227,
							182,
							24,
							194,
							165,
							156,
							131,
							202,
							13,
							31,
							149,
							150,
							34,
							121,
							235,
							193,
							192,
							160,
							17,
							108,
							104,
							234,
							194,
							115,
							35,
							24,
							219,
							120,
							202,
							108,
							253,
							208,
							155,
							252,
							223,
							79,
							14,
							168,
							158,
							67,
							57,
							65,
							153,
							139,
							5,
							196,
							84,
							12,
							42,
							253,
							8,
							75,
							59,
							144,
							204,
							120,
							200,
							45,
							35,
							144,
							20,
							143,
							43,
							23,
							222,
							104,
							230,
							207,
							219,
							133,
							95,
							239,
							58,
							66,
							51,
							86,
							21,
							240,
							100,
							30,
							108,
							214,
							91,
							209,
							122,
							108,
							94,
							33,
							123,
							53,
							85,
							231,
							51,
							245,
							147,
							156,
							185,
							100,
							192,
							55,
							229,
							149,
							104,
							177,
							26,
							146,
							228,
							60,
							109,
							16,
							92,
							105,
							198,
							181,
							154,
							232,
							251,
							199,
							212,
							215,
							30,
							100,
							72,
							212,
							16,
							115,
							221,
							229,
							211,
							231,
							58,
							197,
							250,
							243,
							114,
							67,
							172,
							29,
							233,
							201,
							243,
							210,
							218,
							197,
							50,
							150,
							168,
							123,
							17,
							158,
							74,
							185,
							13,
							101,
							193,
							135,
							106,
							142,
							203,
							47,
							21,
							157,
							215
						]
					]
				}
			},
			"requested_proof": {
				"revealed_attrs": {
					"54bb4fa2-815a-4fd6-b190-e4e947920c95": {
						"sub_proof_index": 0,
						"raw": "John",
						"encoded": "76355713903561865866741292988746191972523015098789458240077478826513114743258"
					}
				},
				"self_attested_attrs": {},
				"unrevealed_attrs": {},
				"predicates": {
					"5986c749-67d9-4ed4-81fb-07870f2e54bd": {
						"sub_proof_index": 0
					}
				}
			},
			"identifiers": [
				{
					"schema_id": "TL1EaPFCZ8Si5aUrqScBDt:2:Schema 16113c6d-74ef-450e-9a1e-cd02abdfac6b:1.0",
					"cred_def_id": "TL1EaPFCZ8Si5aUrqScBDt:3:CL:151:default",
					"rev_reg_id": null,
					"timestamp": null
				}
			]
		}
	},
	"proposal": {
		"indy": {
			"name": "abc",
			"version": "1.0",
			"nonce": "33183147128480969412193",
			"requested_attributes": {
				"54bb4fa2-815a-4fd6-b190-e4e947920c95": {
					"name": "name",
					"restrictions": [
						{
							"cred_def_id": "TL1EaPFCZ8Si5aUrqScBDt:3:CL:151:default"
						}
					]
				}
			},
			"requested_predicates": {
				"5986c749-67d9-4ed4-81fb-07870f2e54bd": {
					"name": "age",
					"p_type": ">=",
					"p_value": 50,
					"restrictions": [
						{
							"cred_def_id": "TL1EaPFCZ8Si5aUrqScBDt:3:CL:151:default"
						}
					]
				}
			}
		}
	},
	"request": {
		"indy": {
			"name": "abc",
			"version": "1.0",
			"nonce": "604046010555332710545481",
			"requested_attributes": {
				"54bb4fa2-815a-4fd6-b190-e4e947920c95": {
					"name": "name",
					"restrictions": [
						{
							"cred_def_id": "TL1EaPFCZ8Si5aUrqScBDt:3:CL:151:default"
						}
					]
				}
			},
			"requested_predicates": {
				"5986c749-67d9-4ed4-81fb-07870f2e54bd": {
					"name": "age",
					"p_type": ">=",
					"p_value": 50,
					"restrictions": [
						{
							"cred_def_id": "TL1EaPFCZ8Si5aUrqScBDt:3:CL:151:default"
						}
					]
				}
			}
		}
	}
}
AnonCreds RS
{
	"presentation": {
		"indy": {
			"proof": {
				"proofs": [
					{
						"primary_proof": {
							"eq_proof": {
								"revealed_attrs": {
									"name": "76355713903561865866741292988746191972523015098789458240077478826513114743258"
								},
								"a_prime": "18983059119411378587103559493179627414827985532324773953077681373669692170561592050399414622038225672215321387747429616258528002482454316916207688887029846852162640249550241879403023159401890594372025929251305882416833478546503759150766631071612610104033595892997938719112631841785948834265797593319527354793849046367650721790978533479265802760827884841527108807577131787225301916924961366009385644783657480539160476555043167544599601515182672811735442411138061868726989675733408179229133479474037179187079596363754376315061808378086805806850858149716160265580928553991902542459166090861731121574317133269329464040005",
								"e": "90559320011200199273790769957704070309762854793607767784835353389883433715354047002884543545585070124565215567950563794665812302794645098",
								"v": "351108354426688498808840904206574449754015520067683019554274344567051647203896494123468324969919811590966853950937790597087667860557356151434295334536172771782952589985167405753788961423401273320543006851700633859121217687550749008795393611318290299735722989542879258125534881663359144339196146555551566419395646282998664004639749601889040520337052215727092786254932248795830303414623613295251538420125311762092689795340161983557879746755835982768201759017745534526053661692467633180434630597352263582126371931638976177965523921186173675143073684415533379710591108517390628865319292273820068984211242192750686903172558934853096418923973337595949442901739045054908790364144268361501324114455717308479913060915615059863985117552734926204925136120363527545427989230572586943523087380770816165414453108792134835084945411948565244996412670978474901968988030662678698160638846144543729927066870305637370920606864452881813409766",
								"m": {
									"image_0": "8173050292560914576123867757009738673459894344049897778387459633611965401034402360183723331539604193776178552810622610871494817870782111117866287817004285523428426211538843750764",
									"image_1": "1202963275979616983004617624350705963532340227831854484787052474330068189902714054000680345501014916476046614338434040222243668863406243246869294101648243208997412183511029921394",
									"age": "3609225825262335144256887531095192858426858642359137616851439964839105705361133452050300175169910603726308969535911997882782785883039759791452606125564495793924130896020990515451",
									"master_secret": "9475557725449206199662673426797616974111822294437553705432297576580761378794020286265397977276671815631625319478942503091685616256439529863715693627828150567595728354900219373673"
								},
								"m2": "353308278673176856132374377270900693087887270967199557903649049812811575249993485914823517704919078642863600771120137624217934425776646467956337720263457507646820549072906689969162200228165978493126402343455105163050423807219651839170236447041817983082187863714908607408726245097265790309753850758090498042865530529161627516098684132986277448506982377491843971984447306642271749271228743901251859699267699973292435324780049765370519726654633376163320736819183040923575666303647584818365536952006613552131003734470015650070151003799001016179322579115433385815815669473577948883928012531120156084458357961595512905916111449884718165974096250121674670572691178206302090370362496817447551263775486238389079981458830810733779404356591164"
							},
							"ge_proofs": []
						},
						"non_revoc_proof": null
					},
					{
						"primary_proof": {
							"eq_proof": {
								"revealed_attrs": {},
								"a_prime": "1533820930575653367553375129909074636115637435432939584968978126618744790764570421649489573043589900771300806400664110203166524066191921204660155315474663314123563547096776662528004814872758691375044242309938665652836733255510159329811727809713062675672875296683332642563061186150768147761328472363823265558381832270032985896211117190017360505897999452680545278902801194037675697431202589824815651359735418833705357323292856826785014454069790310475717973005352741158022331835576542763806842649427193333361461198289621234103069499001348758742081422625795486841127895442301390229840838867831713590342241973788102311871",
								"e": "68730728472270485209426491119292211099710184274313809790480994766130973372725780111552210118988391597428067945479886882300793269502575552",
								"v": "506476039133778909166007985944525945017088006703405420953851351110470600211543638306678680970794275186354586497802182596495253577125411038942354128085589025994736337469371325648338361182744339630398423171411184681427061328132023242600401250377552061542464662420858376207924162596090928887760652601902445371500778378061821336881217713633041878518139888942975671221155525570415704573298266321596370888509306180180463004811224773021361270907572006989585983519550225078958893776048179589240477480419763266238831110170721068455471928592447623447496941130088585745400621481697959918806074580466873896744980171431391043834531115334793788406041658796741710197463215864762663844780747587060495189508978014871229586113636954766353132232658957062303982560966086162740544647197373792535690342829924874172773305419424526062965754909002001351868010475963882336224704142991039658167433596263046354167810273001482264167049876189863142927",
								"m": {
									"age": "9602036491031404342438532508584889611294920540216409415682064675962381761656997260005308432585031419726455209356839093815174049670307108796858551339758742772929671690751567447349",
									"image_1": "7732161778574372568961420667808975023940454182434060113431303874652354525904975437648941912530987032874732904808174125312776317174541365519215571737584036880079556248841121925791",
									"image_0": "11201253426884730845805612214880833356522289153432164250965261869734175127780890208408232113988205182649536104056432501547834606296027563623495721914334007989072052636946154954081",
									"name": "13163422870250665730853433895325580559205194035290041037201095970893926117446637098390576518710474901072973052711580688552836818235005653716280412744482761029204923023683749739813",
									"master_secret": "9475557725449206199662673426797616974111822294437553705432297576580761378794020286265397977276671815631625319478942503091685616256439529863715693627828150567595728354900219373673"
								},
								"m2": "681673695374605409484012779236543525133002715441272342114397462183155015408894567055815819800727612980968901660891787219908913065916335040582044131054154821729314583730208208497070541013200602630912373175135595058824757604966334436923506623565359342237336325656349454861346349578983019613989302420787725034648776283853308220714515814930072736671928842578322415737397490805321721038535615428463466553349867795111147776240585848367331574326966885500134561456383696507688515244422066264370505365035862227178066465626539480555022040532570377210424215441227327230041715529931695431470464505870322734965253546323464471159734624153313205197459541359434479242520397535434419896051010750675517427000830445621639920437713305176176179629152601"
							},
							"ge_proofs": [
								{
									"u": {
										"0": "8552750589993918424789762694682567592018397547393513190979651773477199337606923216201862215735602467113834139880300451157479131456442465182762683359064915982810922539301902431178",
										"1": "4779569970368628023198512308770960103248910487759605136743961958534337355503222097717554300175704406139917836030007777701955778013074971269427869861022433940053131833792263812204",
										"2": "3730848771289191042706505540805743449497170943711600907526955637771914585096917693851515184082268937409424867684230025932546605416685658673480130844044843889596662328915905085501",
										"3": "10818086458179512638283148611565066515033666511778408597643646844829034042620798387970564964699343156977908578636550519296147804584726226998045819475545269516140552290720689289334"
									},
									"r": {
										"0": "1181059179401960645763596108105050008687088671040886128682203790635348924445297864101299080795312219076253679952655070293632849146652613502825183526603747225309875308016919383357133286933031060877635359559082303198649833433809539960474435548639160773558539243726733094964616609878423434678081833840288530445171452947401269690532908396206982106344312011856451773632905326984897833246135002246414195366849094347648554822324825414824858825058092215701317104770478197619733979309856747145948155612279747899636128098324488569508299717744132682038116601077106089044980894276150418850240042568544550519819131580563550423086483073429326992636440793573429110617979379865362593357648733367793729416135052656317481540932627138147",
										"1": "1605846018933262128235424481451088539795738818740429979160224892876822572960628736880521035651357858396800869079075985658741818114226572287287646520913331690914332964656733171579198758296764065541065474063103144889543907137975361127303776537200287491213420350074223190483544426148207313558074718954426253080725528650090712700906344224768184495796278838604557530901533004861801069110222386292015680277443337951194592738400661074827638735771779264181349830078352269134301073662102426437368079670677462003245832799893714121322727507488131665519918720581177212550028289571641218453788200076870253623279522497003291779199796889234476679765213934017126210773108711628694016662948925053856627626567907218777411306565583821137",
										"2": "452409719774433248287407828611503256906070895411835415986525586043655416817584666344194439648809458980691645614415665682881393927471688994120088174053900923171024482721803587089273355872424315469145445921569903241997817340170640046488441103383116013070531041325597975981637034059723714690216476942722462731594288541659224540380304056947762666663668023710204700729891223032826150863299815574624372601646853766647948734399133041974050339849877628426017289172295241445132012567688722081210809313774708936847567995709445779340525245870525462947997017781871864039097187311761620080679020309499822036416991517210117808252602441153781547018206950798913939041980297013160253829958338446238679444343074278720101938301894839748",
										"3": "889981832464339587810584035003295788763567327936201020527089227699010413772801445934405327665568864320937063317455982148211135761207208940574709198929432936692315577008890427414851518216456128304314177068420811338127108109861922006273715985970693768828940348865395185428760207426843863594810898939602512345129689025145989426198192430134488172499452833343251114577695871166986481200814105205207063947593306899192254186870215373138093891246031591511605866050347672484059235349060564979553665888629882291335080907549403599117629232760087175953055148719596680699567287107111391910179156328972953841040518894676924411598476288212774098996538589156002265796725937115155863701727881200316840819354029667220290148306329437066",
										"DELTA": "742898916619200544621002841261173951675170905253771445228896405520157294467590109730891216338783223119426726001798587625898531685952408418651444565275560578220688260201954516414488983779731431822191725768286111898287118725088609692176209548416805359055689036451167141837746090216414782297813487374254807610207038710421892479821489447808961484530756910994011496504013152131924681256115242238916934864252637467028618138818897549328196568528717283330957817564457513024170075581845808595161802202564613633812598088763744482791528840052322064940873647052650983304499836861699279051729574181272292464800799265221779265153559117521716906119201774239009670721664215256415697960120733827978241430048086769907387429557732836530"
									},
									"mj": "9602036491031404342438532508584889611294920540216409415682064675962381761656997260005308432585031419726455209356839093815174049670307108796858551339758742772929671690751567447349",
									"alpha": "6559552840071585439710576150717229599878803638655803967402007529210382235680000502188190415949466522223122449458351151787401308879545961028292728642988377428421192054069450822581693038749312119324875939833711603760343771887061785075656206552382665684265182779327709769793382691739365685886415842499425923220452613717474179449941586860300667746894636327811731553913492432814105516015754362195562921414419983387692497977329144958791420282777163251028302581442627943277179808402792305524069731496527692346709535233544265321284124184655093791484907225359654808733607678694895389197167214643051789112095548892532474074695683622606144351895437204965445925115942497305949328950805952078239421995036945981747879648034081590449850346252964291508940797952543192633835424430748583673239236456648350734297295048532831067385589602453123975599360937909",
									"t": {
										"0": "37934521727217398206623065584733775561586615835823452373102875602395717490060760386373198411324877860364904240299937758491961946703693125434689921041526558872274272349326393165874033592436489756992725248051744893120134216950521728783116383429985485316635466721244892705384984151484646755513422167818972731497199488364279535934182796728780918000851876439511426260293827851962467250932549073351989743074249014874697056795987763734713134888185179196599312482483960856841648528724617038122116876404474024031628415333126208008359270468436190226846727288309038368404885813920301000976362820422804466691860691925096712310917",
										"1": "64427180944385181787870872554528968150388675515351295640856826431754072341759413300822325138527005837248190545440164285842505098633007935309410916277273942719744198472420675030977111901156852198760568432087458795302344110764908691915645871435536094353780389762789054535189618828920450006134036979837462953350033308944300721729902239383739066096897319336157428248874416206591270307553349140801480339268115063532520515623900386740088611368019825413869436240656346776243458130757290321227868553385853960526456256901755343685888983756324350242974942524564012942819882399202444597815710085567904902640862876756548708068207",
										"2": "42269371500135387531184835448547174949100568333243734801692687487936837584484615727914728627863513020740104120121952514642727541085254069084198965035969209941984983192466844569005779039705408769456033873682995027761185143398763129085137621497881029131488457979633955397726022767692417934442294908260698997892297233207271791535063629019357013366173866134151774857708904454594520288117511324384777320787163005039480595534588777232725470017922201913811054003578495897387985129178831667355578776095369829821434630811873504641321117904544614086426835720482745886444204314848113522597350228835436305728101636470784936587964",
										"3": "79762452755745781202451234220780409278957135469289018741123438895819760731092166979840399896232784294570864714919488123947165669216611166399758049681955251170784643563882264100987340872930627167656566593147370768457528255490503316447358905166368239569567084625623801622347437404319604729980208032162273444313149568423180112884349239255579552496282055903164138951004412569793542004884740601453911492764719184979199724773380146613412706690367708338138166007782348968872377052692023928142285942722672546490790463818551502495561409380765431359651064514768742531605491050674434041957206619636642049242251514259783708085382",
										"DELTA": "33695048733672538494834612956050601463786010078334414649702179848710149113059467741473375229734642866327496835160055319952544040309911667306927018046219791361400258112158945630106487794883898563205659671537152948481506247932514561328630139374250025680005397346439208568157939023886671251410069609534615272445993565754133845409474782231108314655723104913210348039610526869583394166302813256781271999913327661439178430074469838701774198661530477854969540322268290117512066586321292021915756350991211979661062560242907528390702675391157756123090835356867311571773257263943368197049009156377355593043187362844718120467553"
									},
									"predicate": {
										"attr_name": "age",
										"p_type": "GE",
										"value": 50
									}
								}
							]
						},
						"non_revoc_proof": null
					}
				],
				"aggregated_proof": {
					"c_hash": "41542125904382235540347762915738768496452592788051909707570822828530207061969",
					"c_list": [
						[
							150,
							95,
							242,
							129,
							234,
							240,
							250,
							117,
							108,
							69,
							29,
							168,
							213,
							111,
							94,
							129,
							231,
							41,
							229,
							66,
							192,
							130,
							40,
							230,
							108,
							51,
							238,
							18,
							196,
							91,
							220,
							189,
							67,
							32,
							172,
							25,
							40,
							73,
							243,
							19,
							188,
							219,
							129,
							164,
							170,
							254,
							48,
							213,
							250,
							8,
							222,
							236,
							17,
							66,
							135,
							76,
							70,
							225,
							79,
							103,
							120,
							93,
							53,
							229,
							152,
							236,
							57,
							151,
							187,
							34,
							39,
							164,
							86,
							108,
							108,
							16,
							28,
							7,
							163,
							16,
							6,
							92,
							109,
							25,
							62,
							67,
							214,
							215,
							115,
							50,
							176,
							98,
							51,
							57,
							32,
							222,
							248,
							220,
							213,
							10,
							203,
							8,
							115,
							226,
							118,
							91,
							94,
							229,
							233,
							245,
							130,
							220,
							79,
							177,
							35,
							69,
							229,
							194,
							41,
							0,
							64,
							77,
							193,
							20,
							196,
							147,
							28,
							171,
							203,
							33,
							112,
							155,
							185,
							18,
							161,
							27,
							221,
							255,
							235,
							99,
							149,
							251,
							254,
							191,
							183,
							161,
							42,
							227,
							117,
							85,
							214,
							252,
							119,
							239,
							76,
							11,
							43,
							69,
							184,
							33,
							40,
							70,
							57,
							231,
							43,
							107,
							74,
							132,
							13,
							170,
							92,
							145,
							13,
							188,
							69,
							140,
							234,
							80,
							139,
							234,
							152,
							128,
							50,
							187,
							29,
							191,
							248,
							112,
							148,
							45,
							13,
							106,
							221,
							238,
							12,
							240,
							198,
							247,
							230,
							108,
							78,
							22,
							144,
							182,
							130,
							244,
							139,
							127,
							134,
							235,
							134,
							245,
							250,
							48,
							92,
							13,
							84,
							40,
							163,
							89,
							223,
							174,
							47,
							147,
							232,
							236,
							170,
							86,
							130,
							108,
							235,
							221,
							222,
							40,
							84,
							135,
							92,
							173,
							124,
							10,
							104,
							52,
							196,
							71,
							159,
							100,
							161,
							148,
							243,
							125,
							66,
							88,
							4,
							188,
							154,
							69
						],
						[
							12,
							38,
							115,
							166,
							187,
							199,
							64,
							112,
							97,
							140,
							55,
							204,
							41,
							82,
							21,
							90,
							58,
							92,
							105,
							226,
							89,
							175,
							67,
							63,
							57,
							171,
							86,
							206,
							178,
							56,
							164,
							3,
							65,
							241,
							154,
							245,
							0,
							120,
							73,
							83,
							23,
							229,
							74,
							105,
							71,
							180,
							33,
							20,
							210,
							187,
							161,
							152,
							115,
							187,
							166,
							196,
							192,
							217,
							252,
							25,
							110,
							55,
							71,
							253,
							58,
							241,
							149,
							194,
							238,
							214,
							225,
							16,
							14,
							63,
							171,
							229,
							231,
							104,
							71,
							160,
							94,
							135,
							47,
							87,
							229,
							41,
							226,
							107,
							32,
							164,
							255,
							205,
							41,
							87,
							123,
							237,
							174,
							215,
							239,
							189,
							10,
							216,
							144,
							116,
							213,
							36,
							135,
							73,
							129,
							63,
							192,
							102,
							187,
							22,
							112,
							98,
							143,
							56,
							133,
							62,
							32,
							65,
							121,
							151,
							50,
							115,
							45,
							8,
							90,
							45,
							64,
							80,
							161,
							222,
							126,
							125,
							78,
							188,
							11,
							224,
							44,
							190,
							28,
							253,
							162,
							147,
							185,
							250,
							60,
							235,
							150,
							7,
							170,
							67,
							218,
							212,
							49,
							109,
							190,
							79,
							128,
							204,
							81,
							185,
							34,
							48,
							150,
							120,
							149,
							83,
							41,
							37,
							114,
							215,
							70,
							224,
							29,
							104,
							224,
							231,
							173,
							214,
							7,
							230,
							57,
							14,
							226,
							77,
							40,
							196,
							64,
							108,
							7,
							188,
							107,
							33,
							46,
							139,
							41,
							242,
							63,
							8,
							53,
							5,
							95,
							189,
							234,
							100,
							191,
							249,
							44,
							178,
							172,
							229,
							144,
							90,
							223,
							141,
							8,
							149,
							141,
							200,
							21,
							214,
							239,
							25,
							87,
							193,
							146,
							175,
							69,
							228,
							246,
							163,
							127,
							245,
							134,
							145,
							181,
							166,
							226,
							152,
							158,
							163,
							180,
							96,
							103,
							146,
							83,
							154,
							203,
							134,
							202,
							35,
							63,
							191
						],
						[
							1,
							44,
							127,
							209,
							215,
							21,
							71,
							97,
							69,
							101,
							253,
							80,
							70,
							173,
							142,
							79,
							128,
							111,
							250,
							210,
							235,
							98,
							92,
							55,
							158,
							66,
							143,
							2,
							203,
							211,
							128,
							85,
							151,
							138,
							80,
							84,
							228,
							151,
							12,
							243,
							190,
							91,
							140,
							9,
							8,
							217,
							50,
							9,
							83,
							121,
							123,
							242,
							247,
							176,
							29,
							239,
							11,
							155,
							204,
							3,
							116,
							248,
							255,
							113,
							118,
							120,
							234,
							181,
							94,
							49,
							6,
							123,
							184,
							18,
							186,
							202,
							237,
							231,
							230,
							64,
							234,
							109,
							147,
							194,
							66,
							129,
							85,
							118,
							91,
							26,
							8,
							126,
							127,
							241,
							168,
							85,
							12,
							3,
							82,
							203,
							1,
							60,
							23,
							45,
							146,
							81,
							52,
							71,
							0,
							31,
							142,
							137,
							172,
							252,
							177,
							33,
							74,
							146,
							73,
							157,
							143,
							27,
							25,
							19,
							132,
							50,
							199,
							99,
							202,
							146,
							83,
							251,
							132,
							238,
							133,
							26,
							208,
							24,
							234,
							212,
							241,
							137,
							66,
							91,
							26,
							128,
							68,
							110,
							2,
							203,
							239,
							19,
							177,
							237,
							90,
							220,
							172,
							127,
							70,
							167,
							14,
							230,
							158,
							242,
							38,
							222,
							102,
							123,
							230,
							222,
							112,
							255,
							213,
							153,
							68,
							145,
							161,
							79,
							203,
							63,
							135,
							163,
							221,
							48,
							31,
							172,
							247,
							196,
							197,
							154,
							135,
							103,
							122,
							199,
							248,
							209,
							191,
							245,
							187,
							231,
							27,
							209,
							79,
							161,
							46,
							157,
							78,
							116,
							20,
							140,
							251,
							144,
							238,
							123,
							30,
							188,
							206,
							39,
							98,
							12,
							139,
							242,
							106,
							127,
							116,
							179,
							150,
							20,
							59,
							22,
							137,
							133,
							24,
							168,
							36,
							138,
							88,
							163,
							12,
							168,
							225,
							220,
							151,
							216,
							75,
							25,
							64,
							113,
							117,
							230,
							218,
							111,
							121,
							16,
							135,
							16,
							133
						],
						[
							1,
							254,
							92,
							144,
							151,
							189,
							192,
							221,
							78,
							184,
							106,
							37,
							228,
							100,
							29,
							2,
							193,
							18,
							25,
							4,
							213,
							28,
							134,
							76,
							184,
							159,
							93,
							18,
							66,
							133,
							43,
							190,
							64,
							50,
							246,
							179,
							183,
							195,
							0,
							15,
							177,
							165,
							10,
							92,
							228,
							152,
							150,
							131,
							251,
							208,
							146,
							89,
							137,
							32,
							106,
							20,
							149,
							60,
							234,
							132,
							240,
							129,
							165,
							10,
							174,
							147,
							126,
							214,
							130,
							250,
							219,
							1,
							116,
							201,
							46,
							164,
							217,
							2,
							143,
							119,
							81,
							55,
							1,
							127,
							170,
							234,
							170,
							42,
							75,
							131,
							66,
							79,
							26,
							162,
							33,
							78,
							63,
							17,
							125,
							239,
							63,
							12,
							31,
							211,
							115,
							184,
							46,
							109,
							241,
							30,
							26,
							239,
							69,
							141,
							210,
							194,
							173,
							49,
							252,
							66,
							46,
							49,
							81,
							117,
							38,
							206,
							190,
							49,
							154,
							90,
							55,
							61,
							117,
							104,
							216,
							31,
							6,
							15,
							30,
							33,
							198,
							84,
							14,
							18,
							52,
							185,
							103,
							88,
							28,
							58,
							199,
							70,
							226,
							164,
							182,
							232,
							253,
							165,
							174,
							115,
							83,
							249,
							140,
							175,
							177,
							32,
							213,
							23,
							186,
							4,
							212,
							185,
							106,
							3,
							96,
							119,
							169,
							185,
							137,
							37,
							113,
							100,
							40,
							75,
							181,
							178,
							89,
							122,
							58,
							15,
							168,
							218,
							141,
							112,
							105,
							86,
							201,
							132,
							232,
							249,
							118,
							80,
							199,
							129,
							206,
							61,
							42,
							18,
							184,
							10,
							111,
							45,
							218,
							66,
							154,
							81,
							230,
							196,
							203,
							142,
							3,
							98,
							114,
							65,
							81,
							139,
							8,
							88,
							109,
							163,
							32,
							180,
							106,
							86,
							55,
							44,
							206,
							167,
							10,
							175,
							94,
							51,
							129,
							241,
							232,
							133,
							135,
							23,
							143,
							230,
							7,
							73,
							104,
							8,
							245,
							235,
							111
						],
						[
							1,
							78,
							214,
							129,
							242,
							70,
							187,
							116,
							188,
							174,
							37,
							122,
							175,
							11,
							175,
							164,
							12,
							238,
							145,
							86,
							125,
							193,
							111,
							11,
							92,
							159,
							75,
							6,
							1,
							157,
							180,
							158,
							164,
							166,
							73,
							174,
							186,
							233,
							142,
							220,
							10,
							157,
							10,
							176,
							135,
							62,
							162,
							76,
							138,
							203,
							37,
							49,
							205,
							186,
							208,
							147,
							113,
							168,
							84,
							171,
							186,
							32,
							107,
							164,
							8,
							90,
							223,
							62,
							192,
							237,
							208,
							37,
							209,
							159,
							182,
							132,
							228,
							162,
							127,
							208,
							242,
							72,
							242,
							72,
							252,
							193,
							213,
							154,
							137,
							29,
							220,
							210,
							51,
							157,
							19,
							100,
							17,
							202,
							80,
							36,
							179,
							155,
							23,
							92,
							63,
							139,
							34,
							155,
							206,
							51,
							81,
							20,
							177,
							187,
							212,
							44,
							242,
							135,
							252,
							229,
							91,
							233,
							147,
							191,
							161,
							67,
							143,
							37,
							139,
							31,
							170,
							200,
							135,
							94,
							237,
							236,
							33,
							17,
							185,
							0,
							8,
							108,
							225,
							219,
							86,
							198,
							16,
							74,
							66,
							240,
							92,
							49,
							222,
							57,
							156,
							147,
							158,
							0,
							98,
							12,
							217,
							97,
							243,
							217,
							119,
							231,
							30,
							255,
							172,
							72,
							192,
							11,
							63,
							227,
							120,
							25,
							168,
							244,
							160,
							102,
							130,
							237,
							247,
							11,
							254,
							187,
							191,
							60,
							86,
							119,
							253,
							214,
							189,
							200,
							94,
							93,
							128,
							72,
							197,
							225,
							158,
							9,
							141,
							241,
							11,
							28,
							144,
							68,
							39,
							80,
							248,
							62,
							29,
							214,
							149,
							164,
							212,
							5,
							157,
							129,
							193,
							210,
							2,
							131,
							10,
							62,
							17,
							2,
							174,
							91,
							173,
							140,
							39,
							33,
							135,
							13,
							222,
							194,
							46,
							84,
							157,
							215,
							88,
							35,
							205,
							178,
							255,
							248,
							141,
							234,
							66,
							209,
							143,
							88,
							131,
							50,
							188
						],
						[
							2,
							119,
							215,
							32,
							30,
							176,
							212,
							151,
							32,
							152,
							57,
							74,
							25,
							139,
							243,
							193,
							167,
							97,
							143,
							63,
							9,
							104,
							218,
							240,
							226,
							124,
							64,
							228,
							101,
							33,
							74,
							210,
							21,
							71,
							191,
							19,
							149,
							141,
							53,
							239,
							67,
							141,
							148,
							231,
							42,
							81,
							158,
							141,
							35,
							42,
							9,
							191,
							80,
							226,
							27,
							205,
							206,
							242,
							108,
							152,
							204,
							113,
							110,
							137,
							170,
							156,
							68,
							190,
							181,
							144,
							128,
							30,
							209,
							139,
							63,
							27,
							200,
							176,
							120,
							154,
							37,
							99,
							10,
							172,
							236,
							158,
							127,
							146,
							119,
							17,
							137,
							189,
							25,
							179,
							95,
							214,
							6,
							235,
							104,
							116,
							242,
							89,
							111,
							79,
							9,
							203,
							106,
							81,
							72,
							203,
							199,
							172,
							204,
							98,
							194,
							60,
							28,
							128,
							252,
							35,
							208,
							169,
							232,
							102,
							207,
							184,
							86,
							9,
							216,
							12,
							216,
							56,
							106,
							100,
							156,
							107,
							226,
							120,
							209,
							73,
							190,
							176,
							174,
							140,
							222,
							247,
							138,
							192,
							230,
							47,
							177,
							110,
							30,
							114,
							210,
							88,
							248,
							11,
							36,
							228,
							236,
							53,
							22,
							134,
							16,
							78,
							130,
							172,
							181,
							212,
							139,
							253,
							174,
							75,
							5,
							134,
							172,
							186,
							5,
							47,
							115,
							241,
							84,
							91,
							74,
							227,
							92,
							134,
							54,
							71,
							190,
							62,
							223,
							93,
							179,
							21,
							238,
							49,
							175,
							118,
							121,
							55,
							237,
							96,
							174,
							61,
							210,
							235,
							211,
							219,
							199,
							32,
							249,
							119,
							136,
							90,
							122,
							112,
							123,
							115,
							15,
							214,
							6,
							87,
							196,
							155,
							238,
							169,
							178,
							234,
							219,
							153,
							10,
							125,
							243,
							212,
							39,
							221,
							243,
							68,
							95,
							219,
							186,
							65,
							100,
							33,
							198,
							151,
							209,
							195,
							18,
							144,
							124,
							165,
							124,
							140,
							134
						],
						[
							1,
							10,
							234,
							140,
							31,
							159,
							218,
							146,
							109,
							93,
							14,
							134,
							160,
							156,
							236,
							48,
							137,
							35,
							194,
							55,
							180,
							18,
							133,
							121,
							47,
							196,
							194,
							20,
							221,
							234,
							129,
							32,
							1,
							248,
							216,
							145,
							58,
							132,
							56,
							0,
							152,
							169,
							20,
							93,
							96,
							122,
							90,
							205,
							226,
							10,
							162,
							125,
							198,
							216,
							159,
							89,
							121,
							250,
							234,
							95,
							192,
							195,
							71,
							176,
							171,
							147,
							83,
							109,
							209,
							52,
							106,
							223,
							85,
							31,
							69,
							249,
							118,
							250,
							110,
							122,
							216,
							12,
							94,
							93,
							83,
							199,
							235,
							172,
							235,
							130,
							203,
							205,
							27,
							61,
							126,
							246,
							180,
							23,
							189,
							63,
							120,
							171,
							231,
							5,
							255,
							219,
							63,
							128,
							3,
							120,
							178,
							116,
							79,
							28,
							208,
							40,
							115,
							179,
							53,
							248,
							234,
							221,
							67,
							202,
							204,
							130,
							50,
							255,
							225,
							168,
							167,
							235,
							64,
							19,
							177,
							213,
							16,
							254,
							200,
							0,
							236,
							14,
							5,
							191,
							63,
							145,
							198,
							28,
							84,
							156,
							216,
							39,
							86,
							22,
							184,
							130,
							35,
							241,
							185,
							254,
							161,
							21,
							86,
							91,
							24,
							59,
							204,
							240,
							190,
							205,
							146,
							210,
							135,
							202,
							13,
							92,
							127,
							236,
							114,
							75,
							176,
							0,
							115,
							135,
							216,
							2,
							23,
							65,
							113,
							196,
							151,
							102,
							143,
							5,
							255,
							178,
							222,
							107,
							166,
							226,
							251,
							141,
							106,
							9,
							148,
							173,
							102,
							31,
							108,
							200,
							44,
							57,
							65,
							43,
							37,
							33,
							251,
							42,
							255,
							133,
							186,
							238,
							194,
							13,
							79,
							76,
							199,
							128,
							196,
							130,
							101,
							30,
							37,
							53,
							68,
							217,
							37,
							143,
							19,
							64,
							52,
							7,
							153,
							165,
							196,
							5,
							174,
							64,
							24,
							239,
							198,
							179,
							216,
							216,
							30,
							124,
							97
						]
					]
				}
			},
			"requested_proof": {
				"revealed_attrs": {
					"9328cb16-87ce-43ef-919b-5828fa78c5b3": {
						"sub_proof_index": 0,
						"raw": "John",
						"encoded": "76355713903561865866741292988746191972523015098789458240077478826513114743258"
					}
				},
				"self_attested_attrs": {},
				"unrevealed_attrs": {},
				"predicates": {
					"fe00fb7e-7c81-4503-a08e-a165677582e0": {
						"sub_proof_index": 1
					}
				}
			},
			"identifiers": [
				{
					"schema_id": "TL1EaPFCZ8Si5aUrqScBDt:2:Schema b8e0561e-ecec-4716-9348-144fead3899b:1.0",
					"cred_def_id": "TL1EaPFCZ8Si5aUrqScBDt:3:CL:147:default",
					"rev_reg_id": null,
					"timestamp": null
				},
				{
					"schema_id": "TL1EaPFCZ8Si5aUrqScBDt:2:Schema b8e0561e-ecec-4716-9348-144fead3899b:1.0",
					"cred_def_id": "TL1EaPFCZ8Si5aUrqScBDt:3:CL:147:default",
					"rev_reg_id": null,
					"timestamp": null
				}
			]
		}
	},
	"proposal": {
		"indy": {
			"name": "abc",
			"version": "1.0",
			"nonce": "897121486743992994844143",
			"requested_attributes": {
				"9328cb16-87ce-43ef-919b-5828fa78c5b3": {
					"name": "name",
					"restrictions": [
						{
							"cred_def_id": "TL1EaPFCZ8Si5aUrqScBDt:3:CL:147:default"
						}
					]
				}
			},
			"requested_predicates": {
				"fe00fb7e-7c81-4503-a08e-a165677582e0": {
					"name": "age",
					"p_type": ">=",
					"p_value": 50,
					"restrictions": [
						{
							"cred_def_id": "TL1EaPFCZ8Si5aUrqScBDt:3:CL:147:default"
						}
					]
				}
			}
		}
	},
	"request": {
		"indy": {
			"name": "abc",
			"version": "1.0",
			"nonce": "480899713111471099219873",
			"requested_attributes": {
				"9328cb16-87ce-43ef-919b-5828fa78c5b3": {
					"name": "name",
					"restrictions": [
						{
							"cred_def_id": "TL1EaPFCZ8Si5aUrqScBDt:3:CL:147:default"
						}
					]
				}
			},
			"requested_predicates": {
				"fe00fb7e-7c81-4503-a08e-a165677582e0": {
					"name": "age",
					"p_type": ">=",
					"p_value": 50,
					"restrictions": [
						{
							"cred_def_id": "TL1EaPFCZ8Si5aUrqScBDt:3:CL:147:default"
						}
					]
				}
			}
		}
	}
}

Signed-off-by: Timo Glastra <timo@animo.id>
@TimoGlastra
Copy link
Contributor Author

Managed to fix all tests except for the multiple proofs issue now 🎉 :)

@berendsliedrecht
Copy link
Contributor

I've updated this PR with the changes from hyperledger/aries-askar#209, and it seems to have made some improvements, but it still happens sadly.

Now getting errors like "WalletError: Error closing wallet': Error code mismatch. Function received: '2', but after fetch it was '6'".

So we might need fix the error handling before we releaes this PR, or make sure we don't call Askar concurrently under this load.

openwallet-foundation/askar#210 This PR should fix the mismatch issues.

@TimoGlastra
Copy link
Contributor Author

openwallet-foundation/askar#210 This PR should fix the mismatch issues.

With the latest changes I managed to fix it by keeping the errorCode as the original, we just sometimes lose the error message -- for which we'd need openwallet-foundation/askar#210, but for now I think this is good enough

@TimoGlastra TimoGlastra marked this pull request as ready for review December 22, 2023 06:18
@TimoGlastra TimoGlastra requested a review from a team as a code owner December 22, 2023 06:18
Signed-off-by: Timo Glastra <timo@animo.id>
@TimoGlastra
Copy link
Contributor Author

I've for now updated the failing test to expect two proofs and created a new issue in AnonCreds RS: hyperledger/anoncreds-rs#292

I don't want to hold up this PR (which focuses on Askar), and we can create a follow up PR if we need to make any changes

@TimoGlastra TimoGlastra enabled auto-merge (squash) December 22, 2023 06:31
Signed-off-by: Timo Glastra <timo@animo.id>
@TimoGlastra
Copy link
Contributor Author

Getting random segmentation faults and jest worker process exists. Probably now appearing because we're stress testing Askar quite a lot by moving all tests to it. Really hard to debug

@TimoGlastra
Copy link
Contributor Author

I think we should not include this in 0.5.0. Although it doesn't change anything about the support for Askar (it even improves it with some concurrency fixes!!) I can't get the tests to succeed and there's all kinds of weird errors happening with Askar.

Therefore I propose we move this PR to 0.6.0 until someone has time to dig into where all the errors are coming from.

I've created #1691 to update the shared components and also Askar library as was done in this PR

Signed-off-by: Timo Glastra <timo@animo.id>
Signed-off-by: Timo Glastra <timo@animo.id>
Signed-off-by: Timo Glastra <timo@animo.id>
Signed-off-by: Timo Glastra <timo@animo.id>
Signed-off-by: Timo Glastra <timo@animo.id>
@TimoGlastra TimoGlastra merged commit 0feda53 into openwallet-foundation:main Jan 31, 2024
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants